///////////////////////////////////////////////////////////////////////////////////////////////////
/// \file formic/fqmc/s_squared.h
///
/// \brief   header file for the monte carlo spin squared expectation value
///
///////////////////////////////////////////////////////////////////////////////////////////////////

#ifndef FORMIC_FQMC_S_SQUARED_HEADER
#define FORMIC_FQMC_S_SQUARED_HEADER

#include<formic/random/random.h>

#include<boost/shared_ptr.hpp>

namespace formic {

  class InputBase;
  class Configuration;
  template<class S> class CoeffObj;

  namespace fqmc {

    template<class S> class Sampler;

    template<class S> S s_squared(const formic::InputBase & userinp,
                                  boost::shared_ptr<formic::fqmc::Sampler<S> > & sampler,
                                  const boost::shared_ptr<formic::CoeffObj<S> > & vf);

  }

}

#endif
